<?php
/**
 * Created by PhpStorm.
 * User: ma
 * Date: 2015/11/25
 * Time: 22:03
 */

namespace ma;
use Yii;
use yii\base\Exception;
use yii\filters\AccessControl;
use yii\web\Controller;
use yii\filters\VerbFilter;
use app\models\LoginForm;
use app\models\ContactForm;
use app\models\EntryForm;
use yii\base\Security;

class matest
{
    /**
     * post 字符串的转化
     * @param $input
     */
    static public function replace_post($input){
        //1. "+"号：JavaScript解析为字符串连接符，所以服务器端接收数据时"+"会丢失。
        //2. "&"：JavaScript解析为变量连接符，所以服务器端接收数据时&符号以后的数据都会丢失。
        //解决办法也相当简单，只需要为+与&符号编码即可：

        $input = str_replace('+','%2B',$input);
        $input = str_replace('&','%26',$input);
        return $input;
    }


    /**
     * 返回MD5
     * @param null $str
     * @return null|string
     */
    static public function getmd5($str=null){
        if(empty($str) || is_null($str)){
            return null;
        }else{
            return md5($str);
        }
    }

    /**
     * 返回base64
     * @param null $str
     * @return null|string
     */
    static public function getbase64($str=null){
        if(empty($str) || is_null($str)){
            return null;
        }else{
            return base64_encode($str);
        }
    }

    /**
     *  base64解析
     * @param null $str
     * @return null|string
     */
    static public function getfrombase64($str=null){
        if(empty($str) || is_null($str)){
            return null;
        }else{
            return base64_decode($str);
        }
    }


    /**
     * AES加密
     * @param null $str
     * @param string $key
     * @return null 没字符串
     */
    static public function getEncodeAESdemo($str=null,$key='1234567890'){
        if(empty($str)){//没有加密字符串
            return null;
        }else {
            //$aes_tmp = new AESdemo($key,128,'ecb',true);
            //$result = $aes_tmp->encode($str);
            //$Security=Yii::$app->getSecurity();
            $result=Yii::$app->getSecurity()->encryptByKey($str, $key);//use yii自带加密算法
            return self::getbase64($result);
        }
    }

    /**
     * AES解密
     * @param null $str
     * @param string $key
     * @return null 没字符串
     */
    static public function getDecodeAESdemo($str=null,$key='1234567890'){
        if(empty($str)){//没有解密字符串
            return null;
        }else{
            $str=self::getfrombase64($str);
            //$aes_tmp = new AESdemo($key);
            //$result = $aes_tmp->decode($str);
            $result=Yii::$app->getSecurity()->decryptByKey($str, $key);//use yii自带加密算法
            return $result;
        }
    }


}